// const map = new Map()
// const map = new Map(
//   [
//     ['key1', 'value1'],
//     ['key2', 'value2'],
//     ['key3', 'value3']
//   ]
// )
// const map = new Map({
//   [Symbol.iterator]: function* () {
//     yield ['key1','value1'],
//     yield ['key2','value2'],
//     yield ['key3', 'value3']
//   }
// })
// console.log(map)

// const map = new Map()
// console.log(map.has('name'))
// console.log(map.get('age'))
// console.log(map.size)
// map.set('name','will').set('age','24') // 每一次调用set方法都返回一个Map对象，所以可以链式调用
// map.delete('name') // 删除name这个健值对
// map.clear() //清空map
// console.log(map)

// 与object只能使用数字，字符串，符号作为健不同，Map可以使用javascript任何类型作为健


const map = new Map([
  ['key1','value1'],
  ['key2','value2'],
  ['key3','value3']
])
// for(let [key,value] of map) {
//   console.log(key,value)
// }
// for(let [key,value] of map.entries()) {
//   console.log(key)
// }
// for (let [key,value] of map[Symbol.iterator]()){
//   console.log(key)
// }

// 因为entries 默认是迭代器，所以可以直接映射实力对象使用扩展操作，把映射转为数组

// console.log([...map])

// keys() values() 分别可以获取生成健和值